
// ======================================================
// 🔹 nias_image_repeater_metabox
// ساخت ریپیتر تصاویر با فیلدهای متنی و خروجی JSON در head
// ======================================================

// 🟢 ➊ تنظیم نام پست تایپ دلخواه (اینجا "portfolio" مثال است)
$nias_target_post_type = 'product';

// 🟢 افزودن متاباکس به پست تایپ مشخص‌شده
add_action('add_meta_boxes', 'nias_add_image_repeater_metabox');
function nias_add_image_repeater_metabox() {
    global $nias_target_post_type;
    add_meta_box(
        'nias_image_repeater_box',            // ID متاباکس
        '📸 گالری تصاویر سفارشی',            // عنوان متاباکس
        'nias_image_repeater_metabox_callback', // تابع نمایش فیلدها
        $nias_target_post_type,               // پست‌تایپ مورد نظر
        'normal',                             // موقعیت
        'high'                                // اولویت
    );
}

// 🟢 نمایش فیلدهای ریپیتر در متاباکس
function nias_image_repeater_metabox_callback($post) {
    wp_nonce_field('nias_save_repeater_data', 'nias_repeater_nonce');

    // دریافت داده‌های ذخیره‌شده قبلی
    $images = get_post_meta($post->ID, '_nias_image_repeater', true);
    if (!is_array($images)) $images = [];
    ?>
    <style>
        .nias-repeater-item {border:1px solid #ccc;padding:10px;margin-bottom:10px;border-radius:8px;}
        .nias-repeater-item img {max-width:100px;display:block;margin-bottom:8px;}
        .nias-add-button, .nias-remove-button {margin-top:5px;}
    </style>

    <div id="nias-image-repeater">
        <?php foreach ($images as $index => $img): ?>
            <div class="nias-repeater-item">
                <label>📷 تصویر:</label><br>
                <input type="hidden" name="nias_images[<?php echo $index; ?>][src]" value="<?php echo esc_url($img['src']); ?>" class="nias-image-url">
                <img src="<?php echo esc_url($img['src']); ?>" alt="" class="nias-preview"><br>
                <button type="button" class="button nias-upload">انتخاب تصویر</button>
                <hr>
                <label>📝 Alt:</label><br>
                <input type="text" name="nias_images[<?php echo $index; ?>][alt]" value="<?php echo esc_attr($img['alt']); ?>" style="width:100%"><br>
                <label>📛 عنوان:</label><br>
                <input type="text" name="nias_images[<?php echo $index; ?>][title]" value="<?php echo esc_attr($img['title']); ?>" style="width:100%"><br>
                <label>📖 توضیحات:</label><br>
                <textarea name="nias_images[<?php echo $index; ?>][description]" style="width:100%" rows="3"><?php echo esc_textarea($img['description']); ?></textarea>
                <button type="button" class="button nias-remove-button">❌ حذف</button>
            </div>
        <?php endforeach; ?>
    </div>

    <button type="button" class="button button-primary nias-add-button">➕ افزودن تصویر جدید</button>

    <script>
    jQuery(document).ready(function($){
        // آپلود تصویر
        $(document).on('click', '.nias-upload', function(e){
            e.preventDefault();
            const button = $(this);
            const frame = wp.media({title: 'انتخاب تصویر', multiple: false});
            frame.on('select', function(){
                const attachment = frame.state().get('selection').first().toJSON();
                button.siblings('.nias-preview').attr('src', attachment.url);
                button.siblings('.nias-image-url').val(attachment.url);
            });
            frame.open();
        });

        // افزودن آیتم جدید
        $('.nias-add-button').click(function(){
            const count = $('#nias-image-repeater .nias-repeater-item').length;
            const newItem = `
                <div class="nias-repeater-item">
                    <label>📷 تصویر:</label><br>
                    <input type="hidden" name="nias_images[${count}][src]" value="" class="nias-image-url">
                    <img src="" alt="" class="nias-preview"><br>
                    <button type="button" class="button nias-upload">انتخاب تصویر</button>
                    <hr>
                    <label>📝 Alt:</label><br>
                    <input type="text" name="nias_images[${count}][alt]" style="width:100%"><br>
                    <label>📛 عنوان:</label><br>
                    <input type="text" name="nias_images[${count}][title]" style="width:100%"><br>
                    <label>📖 توضیحات:</label><br>
                    <textarea name="nias_images[${count}][description]" style="width:100%" rows="3"></textarea>
                    <button type="button" class="button nias-remove-button">❌ حذف</button>
                </div>`;
            $('#nias-image-repeater').append(newItem);
        });

        // حذف آیتم
        $(document).on('click', '.nias-remove-button', function(){
            $(this).closest('.nias-repeater-item').remove();
        });
    });
    </script>
    <?php
}

// 🟢 ذخیره‌سازی داده‌ها هنگام ذخیره پست
add_action('save_post', 'nias_save_image_repeater_data');
function nias_save_image_repeater_data($post_id) {
    if (!isset($_POST['nias_repeater_nonce']) || !wp_verify_nonce($_POST['nias_repeater_nonce'], 'nias_save_repeater_data')) return;
    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;

    if (isset($_POST['nias_images']) && is_array($_POST['nias_images'])) {
        $clean_data = array_values(array_filter($_POST['nias_images'], function($item){
            return !empty($item['src']); // فقط موارد دارای تصویر ذخیره شوند
        }));
        update_post_meta($post_id, '_nias_image_repeater', $clean_data);
    } else {
        delete_post_meta($post_id, '_nias_image_repeater');
    }
}

// 🟢 درج داده‌های JSON درون <head>
add_action('wp_head', 'nias_output_image_json_to_head', 1);
function nias_output_image_json_to_head() {
    if (!is_singular()) return;

    global $post;
    $images = get_post_meta($post->ID, '_nias_image_repeater', true);
    if (!empty($images) && is_array($images)) {
        // حذف کش
        header("Cache-Control: no-cache, no-store, must-revalidate");
        header("Pragma: no-cache");
        header("Expires: 0");
        echo '<script type="application/json" id="nsImageData">' . "\n";
        echo wp_json_encode($images, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
        echo "\n</script>\n";
    }
}



// ======================================================
// 🔹 nias_add_3dcirclenias_body_class
// افزودن کلاس 3dcirclenias به body در صورت پر بودن داده‌های ریپیتر
// ======================================================

add_filter('body_class', 'nias_add_3dcirclenias_body_class');
function nias_add_3dcirclenias_body_class($classes) {
    if (!is_singular()) return $classes; // فقط در صفحات تکی اجرا شود

    global $post;
    $images = get_post_meta($post->ID, '_nias_image_repeater', true);

    // اگر ریپیتر خالی نبود و آرایه بود
    if (is_array($images) && !empty($images)) {
        foreach ($images as $item) {
            // بررسی پر بودن فیلدهای کلیدی
            if (
                !empty($item['src']) &&
                !empty($item['title']) &&
                !empty($item['description'])
            ) {
                // اگر حداقل یک مورد کامل پر باشد، کلاس اضافه شود
                $classes[] = 'circlenias3d';
                break;
            }
        }
    }

    return $classes;
}